<script>
function Request() {
}

Request.prototype.get = function(options) {
  // 把传递过来的 options 挂载到实例
  // this => 是谁？方法中的 this 谁调用就是谁
  // 往实例上挂了 options 等于传递过来的 options
  this.options = options
  // 发请求之前调用“请求拦截器”
  this.beforeRequest(this.options)
  setTimeout(() => {
    this.options.success()
    this.afterRequest()
  }, 1000)
  /* wx.request({
    ...this.options,
    success: () => {
      // 调用响应拦截器，这个 success 是 wx.request 的参数
      // 最终还要调用一下传递过来的 success
      this.options.success()
      this.afterRequest()
    }
  }) */
}


// 需求
const $http = new Request()
$http.beforeRequest = function(options) {
  console.log(1)
  // 统一携带 token
  options.header = {
    Authorization: 'Bearer token'
  }
}
$http.afterRequest = function() {
  console.log(3)
}
// 测试，原型方法
$http.get({
  url: '',
  success (res) {
    console.log(2)
  }
})
</script>